package com.study.design.pattern.pattern.behavioral.state;

/**
 * 已取消状态（终止状态）
 * 所有业务操作终止
 * 状态特征：
 * - 订单取消后的最终状态
 * - 所有操作都将被拒绝
 * - 不可逆状态
 */
class CanceledState implements OrderState {
    /**
     * 已取消订单禁止支付操作
     */
    @Override
    public void pay(OrderContext context) {
        System.out.println("错误操作：订单已取消，无法支付");
    }

    /**
     * 已取消订单禁止重复取消
     */
    @Override
    public void cancel(OrderContext context) {
        System.out.println("错误操作：订单已处于取消状态");
    }

    /**
     * 已取消订单禁止发货操作
     */
    @Override
    public void ship(OrderContext context) {
        System.out.println("错误操作：已取消订单不能发货");
    }

    /**
     * 已取消订单禁止确认收货
     */
    @Override
    public void receive(OrderContext context) {
        System.out.println("错误操作：已取消订单不能收货");
    }
}